package com.wjh.www.service;

import com.wjh.www.entity.dto.CommonResult;
import com.wjh.www.entity.po.Clazz;
import com.wjh.www.entity.vo.ClazzInfoVo;
import com.wjh.www.entity.vo.UserInfoVo;

import java.util.List;

/**
 * @author wjh
 * @date 2021/9/10 16:09
 * @Package com.wjh.anyview.service
 */
public interface ClazzService {
    /**
     * 添加一个班级
     *
     * @param clazz 被封住成对象的班级
     * @return 没有数据返回
     */
    CommonResult<?> addClazz(Clazz clazz);

    /**
     * 通过id删除班级
     *
     * @param clazzId 班级id
     * @return 没有数据返回
     */
    CommonResult<?> deleteClazzById(Long clazzId);

    /**
     * 通过班级id查询班级
     *
     * @param clazzId 班级id
     * @return 返回一个clazz对象
     */
    CommonResult<List<UserInfoVo>> queryClazzById(Long clazzId);

    /**
     * 某个学生添加进某个班级（要先退出原来的班级）
     *
     * @param clazzId   班级id
     * @param studentId 学生id
     * @return 没有数据返回
     */
    CommonResult<?> studentChangeClazz(Long clazzId, Long studentId);

    /**
     * 某班级删除一个学生（把user表的class_id字段设置为0即可）
     *
     * @param studentId 学生id
     * @return 没有数据返回
     */
    CommonResult<?> deleteStudentInClazz(Long studentId);


    /**
     * 查询全部班级
     *
     * @return 没有数据返回
     */
    CommonResult<List<ClazzInfoVo>> queryAllClazz();
}
